home *** CD-ROM | disk | FTP | other *** search
- property myMembers, myNextSlot, myCastlib
-
- on mInit me
- myMembers = [:]
- myCastlib = 1
- repeat with i = 1 to the number of castLibs
- if castLib(i).name = "temp" then
- myCastlib = i
- end if
- end repeat
- myNextSlot = the number of castMembers of castLib myCastlib + 1
- end
-
- on mDestroy me
- if the runMode = "Author" then
- put "Erasing temp members"
- repeat with aMemRef in myMembers
- if aMemRef.type <> #empty then
- erase(aMemRef)
- next repeat
- end if
- put "Error deleting " & aMemRef
- end repeat
- end if
- myMembers.deleteAll()
- end
-
- on mCreate me, id, aMemberType
- if voidp(myMembers) then
- me.mInit()
- end if
- aMemRef = myMembers[id]
- if voidp(aMemRef) then
- aMemRef = new(aMemberType, member(myNextSlot, myCastlib))
- myMembers[id] = aMemRef
- myNextSlot = myNextSlot + 1
- end if
- return myMembers[id]
- end
-
- on mErase me, aMemRef
- if aMemRef.ilk <> #member then
- aMemRef = myMembers.getaProp(aMemRef)
- if voidp(aMemRef) then
- return #error
- end if
- end if
- if aMemRef.type <> #empty then
- erase(aMemRef)
- end if
- myMembers.deleteOne(aMemRef)
- put myMembers
- end
-
- on debug_showStatus me
- msg = RETURN
- msg = msg & me.script & RETURN & "myMembers: " & myMembers
- put msg
- end
-